--1.先查询redis中对应hash有无点赞信息，如果没有说明是第一次点赞，增加记录到redis，如果有，更改状态（lua）
--2.更改redis对应的计数器（lua）
--KEYS[1]代表点赞关系的key,KEYS[2]该实体得到的赞数量的key,S[3]该实体的创建者得到的赞数量的key
--这里没有存储点赞的时间，如果需要的话要用json放进去
local rs =  redis.call("HGET","LikeHash",KEYS[1])
--当 Redis 返回的结果为 (nil) 时候，其真实的数据类型为 boolean,，应该直接判断 true/false
if( rs == false) then
    --创建点赞关系
  redis.call("HSET","LikeHash",KEYS[1],1)
   --改变该实体得到的赞数量
  redis.call("HINCRBY","LikeCountHash",KEYS[2],1)
    --改变该实体的创建者得到的赞数量
  redis.call("HINCRBY","LikeCountHash",KEYS[3],1)
   --表示是第一次创建
  return 2
end

if(rs == "1") then
    redis.call("HSET","LikeHash",KEYS[1],0)
    redis.call("HINCRBY","LikeCountHash",KEYS[2],-1)
    redis.call("HINCRBY","LikeCountHash",KEYS[3],-1)
    return 1
else
    redis.call("HSET","LikeHash",KEYS[1],1)
    redis.call("HINCRBY","LikeCountHash",KEYS[2],1)
    redis.call("HINCRBY","LikeCountHash",KEYS[3],1)
    return 1
end
return -1
